home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.1 / xscreensaver.1 < prev    next >
Text File  |  1995-07-25  |  45KB  |  793 lines

  1.  
  2.  
  3.  
  4.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           xscreensaver - graphics hack and screen locker, launched
  10.           when the user is idle
  11.  
  12.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.           xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr [-display _h_o_s_t:_d_i_s_p_l_a_y._s_c_r_e_e_n] [-timeout _i_n_t]
  14.           [-cycle _i_n_t] [-nice _i_n_t] [-verbose] [-silent] [-xidle]
  15.           [-no-xidle] [-lock] [-no-lock] [-lock-timeout _i_n_t] [-demo]
  16.           [-visual _v_i_s_u_a_l] [-install] [-no-install] [-xrm _r_e_s_o_u_r_c_e_s]
  17.  
  18.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  19.           The _x_s_c_r_e_e_n_s_a_v_e_r program waits until the keyboard and mouse
  20.           have been idle for a period, and then runs a graphics demo
  21.           chosen at random.  It turns off as soon as there is any
  22.           mouse or keyboard activity.
  23.  
  24.           This program can lock your terminal in order to prevent
  25.           others from using it, though its default mode of operation
  26.           is merely to display pretty pictures on your screen when it
  27.           is not in use.
  28.  
  29.           The benefit that this program has over the combination of
  30.           the xxxxlllloooocccckkkk(1) and xxxxaaaauuuuttttoooolllloooocccckkkk(1) programs is the ease with
  31.           which new graphics hacks can be installed.  You don't need
  32.           to recompile (or even re-run) this program to add a new
  33.           display mode.
  34.  
  35.      OOOOPPPPTTTTIIIIOOOONNNNSSSS
  36.           _x_s_c_r_e_e_n_s_a_v_e_r accepts the following options:
  37.  
  38.           ----ttttiiiimmmmeeeeoooouuuutttt _m_i_n_u_t_e_s
  39.                   The screensaver will activate after the keyboard and
  40.                   mouse have been idle for this many minutes.
  41.  
  42.           ----ccccyyyycccclllleeee _m_i_n_u_t_e_s
  43.                   After the screensaver has been running for this many
  44.                   minutes, the currently running sub-process will be
  45.                   killed (with SSSSIIIIGGGGTTTTEEEERRRRMMMM), and a new one started.  If
  46.                   this is 0, then the sub-process will not be killed;
  47.                   only one demo will run until the screensaver is
  48.                   deactivated by user activity.
  49.  
  50.           ----nnnniiiicccceeee _i_n_t_e_g_e_r
  51.                   The sub-processes created by _x_s_c_r_e_e_n_s_a_v_e_r will be
  52.                   ``niced'' to this level, so that they do not consume
  53.                   cycles that are needed elsewhere.
  54.  
  55.           ----vvvveeeerrrrbbbboooosssseeee
  56.                   Print diagnostics.
  57.  
  58.           ----ssssiiiilllleeeennnntttt
  59.  
  60.  
  61.  
  62.  
  63.      Page 1                                          (printed 6/30/95)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  71.  
  72.  
  73.  
  74.           ----xxxxiiiiddddlllleeee----eeeexxxxtttteeeennnnssssiiiioooonnnn
  75.                   Use the XXXXIIIIDDDDLLLLEEEE server extension to decide whether the
  76.                   user is idle.  This is the default if _x_s_c_r_e_e_n_s_a_v_e_r
  77.                   has been compiled with support for this extension.
  78.                   On X11R4 or X11R5 systems, the XIdle method is
  79.                   faster and more reliable than what will be done
  80.                   otherwise, so use it if you can.
  81.  
  82.           ----nnnnoooo----xxxxiiiiddddlllleeee----eeeexxxxtttteeeennnnssssiiiioooonnnn
  83.                   Don't use the XXXXIIIIDDDDLLLLEEEE server extension.
  84.  
  85.           ----ssssssss----eeeexxxxtttteeeennnnssssiiiioooonnnn
  86.                   Use the MMMMIIIITTTT----SSSSCCCCRRRREEEEEEEENNNN----SSSSAAAAVVVVEEEERRRR server extension to decide
  87.                   whether the user is idle.  This is the default if
  88.                   _x_s_c_r_e_e_n_s_a_v_e_r has been compiled with support for this
  89.                   extension.  On X11R6 systems, the  MMMMIIIITTTT----SSSSCCCCRRRREEEEEEEENNNN----SSSSAAAAVVVVEEEERRRR
  90.                   method is faster and more reliable than what will be
  91.                   done otherwise, so use it if you can.
  92.  
  93.           ----nnnnoooo----ssssssss----eeeexxxxtttteeeennnnssssiiiioooonnnn
  94.                   Don't use the MMMMIIIITTTT----SSSSCCCCRRRREEEEEEEENNNN----SSSSAAAAVVVVEEEERRRR server extension.
  95.  
  96.           ----lllloooocccckkkk   Enable locking: before the screensaver will turn
  97.                   off, it requires you to type the password of the
  98.                   person who launched the screensaver, or the root
  99.                   password.  (Note: this doesn't work if the
  100.                   screensaver is launched by xxxxddddmmmm(1) because it can't
  101.                   know the user-id of the logged-in user.)
  102.  
  103.           ----nnnnoooo----lllloooocccckkkk
  104.                   Disable locking.  This is the default.
  105.  
  106.           ----lllloooocccckkkk----ttttiiiimmmmeeeeoooouuuutttt _m_i_n_u_t_e_s
  107.                   This is how long after the screensaver activates
  108.                   that locking is enabled.  For example, if this is 5,
  109.                   then any user activity within five minutes of the
  110.                   time when the screensaver activated will cause the
  111.                   screen to unblank without requiring a password.
  112.                   After 5 minutes, a password will be required.  The
  113.                   default is 0, meaning that if locking is enabled,
  114.                   then a password will be required as soon as the
  115.                   screensaver activates.
  116.  
  117.           ----vvvviiiissssuuuuaaaallll _v_i_s_u_a_l
  118.                   Specify which visual to use.  Legal values are:
  119.  
  120.                   bbbbeeeesssstttt    Use the visual which supports the most
  121.                           writable color cells; this is the default.
  122.  
  123.                   ddddeeeeffffaaaauuuulllltttt Use the screen's default visual (the visual
  124.                           of the root window.)  This is not
  125.                           necessarily the most colorful visual, which
  126.  
  127.  
  128.  
  129.      Page 2                                          (printed 6/30/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  137.  
  138.  
  139.  
  140.                           is why it is not the default.
  141.  
  142.                   _c_l_a_s_s   One of SSSSttttaaaattttiiiiccccGGGGrrrraaaayyyy, SSSSttttaaaattttiiiiccccCCCCoooolllloooorrrr, TTTTrrrruuuueeeeCCCCoooolllloooorrrr,
  143.                           GGGGrrrraaaayyyySSSSccccaaaalllleeee, PPPPsssseeeeuuuuddddooooCCCCoooolllloooorrrr, or DDDDiiiirrrreeeeccccttttCCCCoooolllloooorrrr.
  144.                           Selects the deepest visual of the given
  145.                           class.
  146.  
  147.                   _n_u_m_b_e_r  A number (decimal or hex) is interpreted as
  148.                           a visual id number, as reported by the
  149.                           xxxxddddppppyyyyiiiinnnnffffoooo(1) program; in this way you can
  150.                           select a shallower visual if desired.
  151.  
  152.           ----nnnnoooo----iiiinnnnssssttttaaaallllllll
  153.                   Use the default colormap.  This is the default.
  154.  
  155.           ----iiiinnnnssssttttaaaallllllll
  156.                   Install a private colormap while the screensaver is
  157.                   on, so that the graphics hacks can get as many
  158.                   colors as possible.
  159.  
  160.           ----ddddeeeemmmmoooo   Enter the interactive demo mode immediately after
  161.                   startup.  Normally demo mode is invoked via the
  162.                   xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd(1) program.
  163.  
  164.      XXXX RRRREEEESSSSOOOOUUUURRRRCCCCEEEESSSS
  165.           _x_s_c_r_e_e_n_s_a_v_e_r understands the following resources:
  166.  
  167.           ttttiiiimmmmeeeeoooouuuutttt (class TTTTiiiimmmmeeee)
  168.                   Same as the -_t_i_m_e_o_u_t command-line option.  Default
  169.                   10 minutes.
  170.  
  171.           ccccyyyycccclllleeee (class TTTTiiiimmmmeeee)
  172.                   Same as the -_c_y_c_l_e command-line option.  Default 10
  173.                   minutes.
  174.  
  175.           nnnniiiicccceeee (class NNNNiiiicccceeee)
  176.                   Same as the -_n_i_c_e command-line option.  Default 10.
  177.  
  178.           vvvveeeerrrrbbbboooosssseeee (class BBBBoooooooolllleeeeaaaannnn)
  179.                   Same as the -_v_e_r_b_o_s_e command-line option.
  180.  
  181.           xxxxiiiiddddlllleeee (class BBBBoooooooolllleeeeaaaannnn)
  182.                   Same as the -_x_i_d_l_e command-line option.
  183.  
  184.           lllloooocccckkkk (class BBBBoooooooolllleeeeaaaannnn)
  185.                   Same as the -_l_o_c_k command-line option.
  186.  
  187.           lllloooocccckkkkTTTTiiiimmmmeeeeoooouuuutttt (class TTTTiiiimmmmeeee)
  188.                   Same as the -_l_o_c_k-_t_i_m_e_o_u_t command-line option.
  189.  
  190.           ffffaaaaddddeeee (class BBBBoooooooolllleeeeaaaannnn)
  191.                   If this is true, then when the screensaver
  192.  
  193.  
  194.  
  195.      Page 3                                          (printed 6/30/95)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  203.  
  204.  
  205.  
  206.                   activates, the current contents of the screen will
  207.                   fade to black instead of simply winking out.  This
  208.                   only works on displays with writable colormaps.
  209.                   Default true.  A fade will also be done when
  210.                   switching graphics hacks (when the _c_y_c_l_e timer
  211.                   expires.)
  212.  
  213.           uuuunnnnffffaaaaddddeeee (class BBBBoooooooolllleeeeaaaannnn)
  214.                   If this is true, then when the screensaver
  215.                   deactivates, the original contents of the screen
  216.                   will fade in from black instead of appearing
  217.                   immediately.  This only works on displays with
  218.                   writable colormaps, and if _f_a_d_e is true as well.
  219.                   Default false.
  220.  
  221.           ffffaaaaddddeeeeSSSSeeeeccccoooonnnnddddssss (class TTTTiiiimmmmeeee)
  222.                   If _f_a_d_e is true, this is how long the fade will be
  223.                   in seconds (default 1.)
  224.  
  225.           ffffaaaaddddeeeeTTTTiiiicccckkkkssss (class IIIInnnntttteeeeggggeeeerrrr)
  226.                   If _f_a_d_e is true, this is how many times a second the
  227.                   colormap will be changed to effect a fade.  Higher
  228.                   numbers yield smoother fades, but may make the fades
  229.                   take longer if your server isn't fast enough to keep
  230.                   up.  Default 75.
  231.  
  232.           iiiinnnnssssttttaaaallllllllCCCCoooolllloooorrrrmmmmaaaapppp (class BBBBoooooooolllleeeeaaaannnn)
  233.                   Same as the -_i_n_s_t_a_l_l command-line option.  Default
  234.                   false.
  235.  
  236.           ppppaaaasssssssswwwwddddTTTTiiiimmmmeeeeoooouuuutttt (class TTTTiiiimmmmeeee)
  237.                   If _l_o_c_k is true, this is how many seconds the
  238.                   password dialog box should be left on the screen
  239.                   before giving up (default 30.)  This should not be
  240.                   too large: the X server is grabbed for the duration
  241.                   that the password dialog box is up (for security
  242.                   purposes) and leaving the server grabbed for too
  243.                   long can cause problems.
  244.  
  245.           vvvviiiissssuuuuaaaallllIIIIDDDD (class VVVViiiissssuuuuaaaallllIIIIDDDD)
  246.                   Same as the -_v_i_s_u_a_l command-line option.  Default
  247.                   bbbbeeeesssstttt.
  248.  
  249.           ccccaaaappppttttuuuurrrreeeeSSSSttttddddeeeerrrrrrrr (class BBBBoooooooolllleeeeaaaannnn)
  250.                   Whether _x_s_c_r_e_e_n_s_a_v_e_r should redirect its standard-
  251.                   error stream to the window itself.  Since its nature
  252.                   is to take over the screen, you would not normally
  253.                   see error messages generated by the screensaver or
  254.                   the programs it runs; this resource will cause the
  255.                   output of all relevant programs to be drawn on the
  256.                   screensaver window itself instead of written to the
  257.                   controlling terminal of the screensaver driver
  258.  
  259.  
  260.  
  261.      Page 4                                          (printed 6/30/95)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  269.  
  270.  
  271.  
  272.                   process.  Default: True.
  273.  
  274.           ccccaaaappppttttuuuurrrreeeeSSSSttttddddoooouuuutttt (class BBBBoooooooolllleeeeaaaannnn)
  275.                   Like ccccaaaappppttttuuuurrrreeeeSSSSttttddddeeeerrrrrrrr but for the standard-output
  276.                   stream.  Default: True.
  277.  
  278.           ffffoooonnnntttt (class FFFFoooonnnntttt)
  279.                   The font used for the stdout/stderr text, if
  280.                   ccccaaaappppttttuuuurrrreeeeSSSSttttddddoooouuuutttt or ccccaaaappppttttuuuurrrreeeeSSSSttttddddeeeerrrrrrrr are true.  Default
  281.                   ****----mmmmeeeeddddiiiiuuuummmm----rrrr----****----111144440000----****----mmmm----**** (a 14 point fixed-width
  282.                   font.)
  283.  
  284.           tttteeeexxxxttttFFFFoooorrrreeeeggggrrrroooouuuunnnndddd (class FFFFoooorrrreeeeggggrrrroooouuuunnnndddd)
  285.                   The foreground color used for the stdout/stderr
  286.                   text, if ccccaaaappppttttuuuurrrreeeeSSSSttttddddoooouuuutttt or ccccaaaappppttttuuuurrrreeeeSSSSttttddddeeeerrrrrrrr are true.
  287.                   Default: Yellow.
  288.  
  289.           tttteeeexxxxttttBBBBaaaacccckkkkggggrrrroooouuuunnnndddd (class BBBBaaaacccckkkkggggrrrroooouuuunnnndddd)
  290.                   The background color used for the stdout/stderr
  291.                   text, if ccccaaaappppttttuuuurrrreeeeSSSSttttddddoooouuuutttt or ccccaaaappppttttuuuurrrreeeeSSSSttttddddeeeerrrrrrrr are true.
  292.                   Default: Black.
  293.  
  294.           pppprrrrooooggggrrrraaaammmmssss (class PPPPrrrrooooggggrrrraaaammmmssss)
  295.                   The graphics hacks which _x_s_c_r_e_e_n_s_a_v_e_r runs when the
  296.                   user is idle.  The value of this resource is a
  297.                   string, one _s_h command per line.  Each line must
  298.                   contain exactly one command -- no semicolons.
  299.  
  300.                   When the screensaver starts up, one of these is
  301.                   selected at random, and run.  After the _c_y_c_l_e period
  302.                   expires, it is killed, and another is selected and
  303.                   run.
  304.  
  305.                   If the value of this resource (and the applicable
  306.                   one of ccccoooolllloooorrrrPPPPrrrrooooggggrrrraaaammmmssss or mmmmoooonnnnooooPPPPrrrrooooggggrrrraaaammmmssss) is empty, then
  307.                   no programs will be run; the screen will simply be
  308.                   made black.
  309.  
  310.                   Note that you must escape the newlines; here is an
  311.                   example of how you might set this in your ._X_d_e_f_a_u_l_t_s
  312.                   file:
  313.  
  314.                        xscreensaver.programs:  \
  315.                                qix -root                        \n\
  316.                                ico -r -faces -sleep 1 -obj ico  \n\
  317.                                xdaliclock -builtin2 -root       \n\
  318.                                xwave -root
  319.  
  320.                   To use a program as a screensaver, two things are
  321.                   required: that that program draw on the root window
  322.                   (or be able to be configured to draw on the root
  323.                   window); and that that program understand ``virtual
  324.  
  325.  
  326.  
  327.      Page 5                                          (printed 6/30/95)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  335.  
  336.  
  337.  
  338.                   root'' windows, as used by virtual window managers
  339.                   such as _t_v_t_w_m.
  340.  
  341.                   It is quite easy to make programs understand virtual
  342.                   roots if they don't already: you merely need to
  343.                   include the file "_v_r_o_o_t._h" in them after the
  344.                   standard X includes, and recompile.  This file is
  345.                   distributed with X11r5, and is included with
  346.                   xscreensaver as well.
  347.  
  348.           mmmmoooonnnnooooPPPPrrrrooooggggrrrraaaammmmssss (class MMMMoooonnnnooooPPPPrrrrooooggggrrrraaaammmmssss)
  349.                   This resource is appended to the value of the
  350.                   _p_r_o_g_r_a_m_s resource if the display on which the
  351.                   screensaver is running is monochrome.
  352.  
  353.           ccccoooolllloooorrrrPPPPrrrrooooggggrrrraaaammmmssss (class CCCCoooolllloooorrrrPPPPrrrrooooggggrrrraaaammmmssss)
  354.                   This resource is appended to the value of the
  355.                   _p_r_o_g_r_a_m_s resource if the display on which the
  356.                   screensaver is running is not monochrome.
  357.  
  358.               NNNNOOOOTTTTEEEE:::: tttthhhhiiiissss mmmmeeeeaaaannnnssss tttthhhhaaaatttt iiiiffff yyyyoooouuuu wwwwaaaannnntttt ttttoooo ccccoooommmmpppplllleeeetttteeeellllyyyy rrrreeeeppppllllaaaacccceeee
  359.               tttthhhheeee lllliiiisssstttt ooooffff pppprrrrooooggggrrrraaaammmmssss wwwwhhhhiiiicccchhhh xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr rrrruuuunnnnssss,,,, yyyyoooouuuu mmmmuuuusssstttt
  360.               sssseeeetttt aaaatttt lllleeeeaaaasssstttt _t_w_o,,,, ppppoooossssssssiiiibbbbllllyyyy _t_h_r_e_e rrrreeeessssoooouuuurrrrcccceeeessss....  IIIItttt iiiissss nnnnooootttt
  361.               eeeennnnoooouuuugggghhhh ttttoooo jjjjuuuusssstttt sssseeeetttt tttthhhheeee pppprrrrooooggggrrrraaaammmmssss rrrreeeessssoooouuuurrrrcccceeee -------- yyyyoooouuuu mmmmuuuusssstttt
  362.               aaaallllssssoooo sssseeeetttt ccccoooolllloooorrrrPPPPrrrrooooggggrrrraaaammmmssss oooorrrr mmmmoooonnnnooooPPPPrrrrooooggggrrrraaaammmmssss oooorrrr bbbbooootttthhhh....
  363.  
  364.           Normally you won't need to change the following resources:
  365.  
  366.           bbbboooouuuurrrrnnnneeeeSSSShhhheeeellllllll (class BBBBoooouuuurrrrnnnneeeeSSSShhhheeeellllllll)
  367.                   The pathname of the shell that _x_s_c_r_e_e_n_s_a_v_e_r uses to
  368.                   start subprocesses.  This must be whatever your
  369.                   local variant of ////bbbbiiiinnnn////sssshhhh is -- in particular, it
  370.                   must not be ccccsssshhhh.
  371.  
  372.           wwwwiiiinnnnddddoooowwwwCCCCrrrreeeeaaaattttiiiioooonnnnTTTTiiiimmmmeeeeoooouuuutttt (class TTTTiiiimmmmeeee)
  373.                   When _X_I_d_l_e is not in use, this controls the delay
  374.                   between when windows are created and when
  375.                   _x_s_c_r_e_e_n_s_a_v_e_r selects events on them.  Default 30
  376.                   seconds.
  377.  
  378.           ppppooooiiiinnnntttteeeerrrrPPPPoooollllllllTTTTiiiimmmmeeee (class TTTTiiiimmmmeeee)
  379.                   When _X_I_d_l_e is not in use, this controls how
  380.                   frequently _x_s_c_r_e_e_n_s_a_v_e_r checks to see if the mouse
  381.                   position or buttons have changed.  Default 5
  382.                   seconds.
  383.  
  384.           iiiinnnniiiittttiiiiaaaallllDDDDeeeellllaaaayyyy (class TTTTiiiimmmmeeee)
  385.                   When _X_I_d_l_e is not in use, _x_s_c_r_e_e_n_s_a_v_e_r will wait
  386.                   this many seconds before selecting events on
  387.                   existing windows, under the assumption that
  388.                   _x_s_c_r_e_e_n_s_a_v_e_r is started during your login procedure,
  389.                   and the window state may be in flux.  Default 30
  390.  
  391.  
  392.  
  393.      Page 6                                          (printed 6/30/95)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  401.  
  402.  
  403.  
  404.                   seconds.
  405.  
  406.      HHHHOOOOWWWW IIIITTTT WWWWOOOORRRRKKKKSSSS
  407.           When it is time to activate the screensaver, a full-screen
  408.           black window is created.  This window is given the
  409.           appropriate properties so that, to any subsequently-created
  410.           programs, it will appear to be a ``virtual root'' window.
  411.           Because of this, any program which draws on the root window
  412.           (and which understands virtual roots) can be used as a
  413.           screensaver.
  414.  
  415.           When the user becomes active again, the screensaver window
  416.           is unmapped and the running subprocess is killed by sending
  417.           it SSSSIIIIGGGGTTTTEEEERRRRMMMM.  This is also how the subprocesses are killed
  418.           when the screensaver decides that it's time to run a
  419.           different demo: the old one is killed and a new one is
  420.           launched.
  421.  
  422.           Before launching a subprocess, _x_s_c_r_e_e_n_s_a_v_e_r stores an
  423.           appropriate value for $$$$DDDDIIIISSSSPPPPLLLLAAAAYYYY in the environment that the
  424.           child will recieve.  (This is so that if you start
  425.           _x_s_c_r_e_e_n_s_a_v_e_r with a -_d_i_s_p_l_a_y argument, the programs which
  426.           _x_s_c_r_e_e_n_s_a_v_e_r launches will draw on the same display.)
  427.  
  428.           When the screensaver turns off, or is killed, care is taken
  429.           to restore the ``real'' virtual root window if there is one.
  430.           Because of this, it is important that you not kill the
  431.           screensaver process with _k_i_l_l -_9 if you are running a
  432.           virtual-root window manager.  If you kill it with -9, you
  433.           may need to restart your window manager to repair the
  434.           damage.  This isn't an issue if you aren't running a
  435.           virtual-root window manager.
  436.  
  437.           For all the gory details, see the commentary at the top of
  438.           xscreensaver.c.
  439.  
  440.           You can control a running screensaver process by using the
  441.           xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd(1) program (which see.)
  442.  
  443.      EEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  444.           DDDDIIIISSSSPPPPLLLLAAAAYYYY to get the default host and display number.
  445.  
  446.           XXXXEEEENNNNVVVVIIIIRRRROOOONNNNMMMMEEEENNNNTTTT
  447.                   to get the name of a resource file that overrides
  448.                   the global resources stored in the RESOURCE_MANAGER
  449.                   property.
  450.  
  451.      UUUUSSSSIIIINNNNGGGG XXXXDDDDMMMM((((1111))))
  452.           You can run _x_s_c_r_e_e_n_s_a_v_e_r from your xdm session, so that the
  453.           screensaver will run even when nobody is logged in on the
  454.           console. Simply add """"xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr &&&&"""" to your
  455.           /_u_s_r/_l_i_b/_X_1_1/_x_d_m/_X_s_e_t_u_p file.  Because _x_d_m grabs the
  456.  
  457.  
  458.  
  459.      Page 7                                          (printed 6/30/95)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  467.  
  468.  
  469.  
  470.           keyboard, keypresses will not make the screensaver
  471.           deactivate, but any mouse activity will.
  472.  
  473.           Users may want to add """"xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd ----rrrreeeessssttttaaaarrrrtttt"""" to
  474.           their startup scripts, so that the screensaver will be
  475.           reinitialized with their private resource settings when they
  476.           log in.
  477.  
  478.           It is safe to run this program as root (as _x_d_m is likely to
  479.           do.)  If run as root, _x_s_c_r_e_e_n_s_a_v_e_r changes its effective
  480.           user and group ids to something safe (like "_n_o_b_o_d_y") before
  481.           connecting to the X server or launching user-specified
  482.           programs.
  483.  
  484.           Locking doesn't work if the screensaver is launched by _x_d_m.
  485.           To get around this, you can run the screensaver from _x_d_m
  486.           without locking, and kill and restart it from your personal
  487.           X startup script to enable locking.
  488.  
  489.      DDDDEEEEMMMMOOOO MMMMOOOODDDDEEEE
  490.           If _x_s_c_r_e_e_n_s_a_v_e_r receives the DDDDEEEEMMMMOOOO ClientMessage, it pops up
  491.           a dialog box from which you can examine and experiment with
  492.           the screensaver's client programs.
  493.  
  494.           Clicking left on an element in the scrolling list will place
  495.           the indicated program and its args in the text field to be
  496.           edited.  Edit the arguments and hit return to run the
  497.           program with the parameters you have specified.
  498.  
  499.           Double-clicking on an element in the scrolling list will run
  500.           the indicated program immediately.
  501.  
  502.           When a client program is launched, the dialog box is hidden.
  503.           Clicking any mouse button will re-expose the dialog box (but
  504.           will not kill the client program.)
  505.  
  506.           RRRRuuuunnnn NNNNeeeexxxxtttt
  507.                   Clicking this button will run the next program in
  508.                   the list after the currently-selected one, and will
  509.                   scroll around to the top when it reaches the bottom.
  510.  
  511.           RRRRuuuunnnn PPPPrrrreeeevvvviiiioooouuuussss
  512.                   Opposite of Run Next; at the top, it scrolls around
  513.                   to the bottom.
  514.  
  515.           EEEEddddiiiitttt PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss
  516.                   This pops up a second dialog box, in which you have
  517.                   the option to interactively change most of the
  518.                   screensaver's operational parameters, such as its
  519.                   timeouts, and whether it should hack colormaps.
  520.                   Changing these parameters here will affect only the
  521.                   running _x_s_c_r_e_e_n_s_a_v_e_r process; to make the changes
  522.  
  523.  
  524.  
  525.      Page 8                                          (printed 6/30/95)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  533.  
  534.  
  535.  
  536.                   permanent, you need to edit your X resource file.
  537.  
  538.           EEEExxxxiiiitttt DDDDeeeemmmmoooo MMMMooooddddeeee
  539.                   Returns to normal screensaver operation.
  540.  
  541.           RRRReeeeiiiinnnniiiittttiiiiaaaalllliiiizzzzeeee
  542.                   Causes the screensaver process to exit and then
  543.                   restart with the same command-line arguments.  This
  544.                   causes the X resource database to be re-read.  This
  545.                   is just like the -_r_e_s_t_a_r_t argument to
  546.                   xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd(1) except that when executed
  547.                   from this button, the screensaver will automatically
  548.                   return to demo mode after restarting.
  549.  
  550.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  551.           XXXX(1), xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd(1), xxxxlllloooocccckkkk(1), xxxxnnnnlllloooocccckkkk(1),
  552.           xxxxaaaauuuuttttoooolllloooocccckkkk(1), xxxxddddmmmm(1), qqqqiiiixxxx(1), ppppyyyyrrrroooo(1), hhhheeeelllliiiixxxx(1),
  553.           rrrroooorrrrsssscccchhhhaaaacccchhhh(1), hhhhooooppppaaaalllloooonnnngggg(1), aaaattttttttrrrraaaaccccttttiiiioooonnnn(1), ggggrrrreeeeyyyynnnneeeettttiiiicccc(1),
  554.           rrrroooocccckkkkssss(1), nnnnoooosssseeeegggguuuuyyyy(1), bbbblllliiiittttssssppppiiiinnnn(1), iiiimmmmssssmmmmaaaapppp(1),
  555.           sssslllliiiiddddeeeessssccccrrrreeeeeeeennnn(1), ddddeeeeccccaaaayyyyssssccccrrrreeeeeeeennnn(1), hhhhyyyyppppeeeerrrrccccuuuubbbbeeee(1), ffffllllaaaammmmeeee(1),
  556.           mmmmaaaazzzzeeee(1), iiiiccccoooo(1), xxxxddddaaaalllliiiicccclllloooocccckkkk(1), xxxxbbbboooouuuunnnncccceeeebbbbiiiittttssss(1), xxxxsssswwwwaaaarrrrmmmm(1),
  557.           xxxxwwwwaaaavvvveeee(1), xxxxffffiiiisssshhhhttttaaaannnnkkkk(1)
  558.  
  559.      BBBBUUUUGGGGSSSS
  560.           If you think you have changed the pppprrrrooooggggrrrraaaammmmssss resource but the
  561.           screensaver is ignoring it, you are confused -- you need to
  562.           set the ccccoooolllloooorrrrPPPPrrrrooooggggrrrraaaammmmssss and/or mmmmoooonnnnooooPPPPrrrrooooggggrrrraaaammmmssss resources as well.
  563.           (This is not a bug, but I mention it here because people
  564.           think that it is with great regularity.)
  565.  
  566.           If you are not making use of one of the server extensions
  567.           (XXXXIIIIDDDDLLLLEEEE or MMMMIIIITTTT----SSSSCCCCRRRREEEEEEEENNNN----SSSSAAAAVVVVEEEERRRR), then it is possible, in rare
  568.           situations, for _x_s_c_r_e_e_n_s_a_v_e_r to interfere with event
  569.           propagation and make another X program malfunction.  For
  570.           this to occur, that other application would need to _n_o_t
  571.           select KKKKeeeeyyyyPPPPrrrreeeessssssss events on its non-leaf windows within the
  572.           first 30 seconds of their existence, but then select for
  573.           them later.  In this case, that client _m_i_g_h_t fail to receive
  574.           those events.  This isn't very likely, since programs
  575.           generally select a constant set of events immediately after
  576.           creating their windows and then don't change them, but this
  577.           is the reason that it's a good idea to install and use one
  578.           of the server extensions instead, to work around this
  579.           shortcoming in the X protocol.
  580.  
  581.           Although this program ``nices'' the subprocesses that it
  582.           starts, graphics-intensive subprograms can still overload
  583.           the machine by causing the X server process itself (which is
  584.           not ``niced'') to suck a lot of cycles.  Care should be
  585.           taken to slow down programs intended for use as screensavers
  586.           by inserting strategic calls to sssslllleeeeeeeepppp(3) or uuuusssslllleeeeeeeepppp(3)
  587.  
  588.  
  589.  
  590.  
  591.      Page 9                                          (printed 6/30/95)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  599.  
  600.  
  601.  
  602.           Also, it will cause your X server to be pretty much
  603.           permanently swapped in.  (but the same is true of any
  604.           program that draws periodically, like xclock or xload.)
  605.  
  606.           If the subprocess is drawing too quickly and the connection
  607.           to the X server is a slow one (such as an X terminal running
  608.           over a phone line) then the screensaver might not turn off
  609.           right away when the user becomes active again (the iiiiccccoooo(1)
  610.           demo has this problem if being run in full-speed mode).
  611.           This can be alleviated by inserting strategic calls to
  612.           XXXXSSSSyyyynnnncccc(3) in code intended for use as a screensaver.  This
  613.           prevents too much graphics activity from being buffered up.
  614.  
  615.           The screensaver only runs on the default screen of the
  616.           display.  If you have more than one screen, you can run
  617.           multiple screensaver processes, one for each screen.  This
  618.           interacts poorly with locking.  In an ideal world, the
  619.           screensaver would save (and lock) both screens
  620.           simultaniously, and any activity would restore both screens.
  621.           It would be nice if one could run different hacks on each
  622.           screen simultaniously.  However, I don't have access to a
  623.           multi-headed workstation, so it would be hard for me to
  624.           implement something like this.
  625.  
  626.           If you don't have Motif, you can't compile with support for
  627.           locking or demo mode.
  628.  
  629.           Locking doesn't work if the screensaver is launched by _x_d_m.
  630.           The reason for this is that when it is launched by _x_d_m, the
  631.           screensaver process is owned by some standard user id (such
  632.           as _r_o_o_t or _d_a_e_m_o_n) instead of the user who is logged in on
  633.           the console.  In order for the screensaver to prompt for the
  634.           password of the person who had logged in from _x_d_m, it would
  635.           need to know who that user was, and there is no reliable and
  636.           safe way to figure that out.  (And even if there was, there
  637.           would be some other security issues here as well.)
  638.  
  639.           So if you want to use it as a locker, you must start it with
  640.           your user id.  If it has already been started by _x_d_m, you
  641.           can kill it with xxxxssssccccrrrreeeeeeeennnnssssaaaavvvveeeerrrr----ccccoooommmmmmmmaaaannnndddd ----eeeexxxxiiiitttt, and then start
  642.           it again as you.
  643.  
  644.           If you get an error message like ``couldn't get password of
  645.           foo'' then this probably means that you're on a system in
  646.           which the ggggeeeettttppppwwwweeeennnntttt(3) library routine can only be
  647.           effectively used by root.  If this is the case, then
  648.           _x_s_c_r_e_e_n_s_a_v_e_r must be installed as setuid to root.  Care has
  649.           been taken to make this a safe thing to do.
  650.  
  651.           The iiiinnnnssssttttaaaallllllllCCCCoooolllloooorrrrmmmmaaaapppp option doesn't work very well with the
  652.           ttttwwwwmmmm(1) window manager and its descendants.  There is a race
  653.           condition between the screensaver and this window manager,
  654.  
  655.  
  656.  
  657.      Page 10                                         (printed 6/30/95)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  665.  
  666.  
  667.  
  668.           which can result in the screensaver's colormap not getting
  669.           installed properly, meaning the graphics hacks will appear
  670.           in essentially random colors.  The mmmmwwwwmmmm(1) and oooollllwwwwmmmm(1) window
  671.           managers don't seem to have this problem.  The race
  672.           condition exists because X apparently does not provide a way
  673.           for an OverrideRedirect window to have its own colormap,
  674.           short of grabbing the server (which is neither a good idea,
  675.           nor really possible with the current design.)  What happens
  676.           is that, as soon as the screensaver installs its colormap,
  677.           ttttwwwwmmmm responds to the CCCCoooolllloooorrrrmmmmaaaappppNNNNoooottttiiiiffffyyyy event that is generated
  678.           by re-instaling the default colormap.  Apparently, ttttwwwwmmmm
  679.           doesn't _a_l_w_a_y_s do this; it seems to do it regularly if the
  680.           screensaver is activated from a menu item, but seems to not
  681.           do it if the screensaver comes on of its own volition, or is
  682.           activated from another console.  Any thoughts on this
  683.           problem are welcome...
  684.  
  685.           Apparently there are some problems with ``XView'' programs
  686.           getting confused and thinking that the screensaver window is
  687.           the real root window even when the screensaver is not
  688.           active: ClientMessages intended for the window manager are
  689.           sent to the screensaver window instead.  This could be
  690.           solved by making xscreensaver forward all unrecognised
  691.           ClientMessages to the real root window, but there may be
  692.           other problems as well.
  693.  
  694.           When using the MMMMIIIITTTT----SSSSCCCCRRRREEEEEEEENNNN----SSSSAAAAVVVVEEEERRRR extension in conjunction
  695.           with the ffffaaaaddddeeee option, you may notice an unattractive flicker
  696.           just before the fade begins.  This is because the server
  697.           maps a black window just before it tells the _x_s_c_r_e_e_n_s_a_v_e_r
  698.           process to activate.  The _x_s_c_r_e_e_n_s_a_v_e_r process immediately
  699.           unmaps that window, but this results in a flicker.  I
  700.           haven't figured out how to get around this yet.
  701.  
  702.           There need to be a lot more graphics hacks.  In particular,
  703.           there should be a simulation of a Lavalite (tm).
  704.  
  705.      CCCCOOOOPPPPYYYYRRRRIIIIGGGGHHHHTTTT
  706.           Copyright c 1992, 1993, 1994, 1995 by Jamie Zawinski.
  707.           Permission to use, copy, modify, distribute, and sell this
  708.           software and its documentation for any purpose is hereby
  709.           granted without fee, provided that the above copyright
  710.           notice appear in all copies and that both that copyright
  711.           notice and this permission notice appear in supporting
  712.           documentation.  No representations are made about the
  713.           suitability of this software for any purpose.  It is
  714.           provided "as is" without express or implied warranty.
  715.  
  716.      AAAAUUUUTTTTHHHHOOOORRRR
  717.           Jamie Zawinski <jwz@mcom.com>, 13-aug-92.  Please let me
  718.           know if you find any bugs or make any improvements.
  719.  
  720.  
  721.  
  722.  
  723.      Page 11                                         (printed 6/30/95)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))      XXXX VVVVeeeerrrrssssiiiioooonnnn 11111111 ((((6666----JJJJaaaannnn----99995555))))      XXXXSSSSccccrrrreeeeeeeennnnSSSSaaaavvvveeeerrrr((((1111))))
  731.  
  732.  
  733.  
  734.           Thanks to David Wojtowicz for implementing _l_o_c_k_T_i_m_e_o_u_t.
  735.  
  736.           Thanks to Martin Kraemer for adding support for shadow
  737.           passwords and locking-disabled diagnostics.
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                                         (printed 6/30/95)
  790.  
  791.  
  792.  
  793.